This invention is related to a method and computer system of data entry of handwritten characters and, in particular, data entry in a windowing environment.
Handwriting recognition systems are being developed to allow users to input handwritten data into a computer. An electronic tablet allows a user to hand write data that the computer can recognize. The user writes data on the electronic tablet with a special pen. As the user moves the pen across the tablet, the tablet displays xe2x80x9cink.xe2x80x9d The tablet senses the position of the pen as the user writes and sends the position data to the computer. The computer receives this position data and converts it to recognized symbols, such as letters or numbers, in a convenient format, such as ASCII format. The computer then processes the formatted characters.
Some handwriting recognition systems recognize not only characters, letters and punctuation, but also gestures. Gestures are handwritten symbols that are typically used to represent editing commands or to produce non-printing text. For example, a handwritten backslash over a letter may mean delete the letter, a caret in between two letters may mean insert text, or a vertical line with an arrow to the left may mean insert a carriage return. Gestures are used extensively when printed documents are edited. During recognition, these gestures are converted to a convenient format for use by the computer.
These handwriting recognition systems use algorithms to map handwritten data to symbols. Typically, these systems internally store a prototype for each symbol that can be recognized. A prototype is a xe2x80x9cpicturexe2x80x9d of a handwritten symbol that is used to map handwriting to a symbol. A system that recognizes just capital letters may have only 26 prototypes: one for each capital letter. Recognition systems use recognition algorithms to map handwritten data to a prototype. As long as the user writes like the prototypes, the handwritten data is successfully recognized. Conversely, the more dissimilar the handwritten data and the prototype are, the more likely it is that the handwritten data will be misrecognized. Misrecognition is typically due to the differences in user handwriting styles and legibility of the handwriting. For example, the handwritten word xe2x80x9cdearxe2x80x9d may be misrecognized as the word xe2x80x9cclearxe2x80x9d depending the way the user writes a xe2x80x9cdxe2x80x9d and the prototypes for the letters xe2x80x9cd,xe2x80x9d xe2x80x9cc,xe2x80x9d and xe2x80x9cl.xe2x80x9d
Although some computer programs are written to accept handwritten data, most computer programs are designed to receive data typed by a user at a computer keyboard. Such programs are call non-pen programs, that is, the programs are not designed to support handwritten data entry. It is often desirable to allow users the option to input data through a keyboard or by handwriting. Many people are not proficient at typing. They shun using computers because it is burdensome to enter data. These people, however, would use a computer if the computer program would accept handwritten data entry. Also, there are many situations where the use of a keyboard is impractical and where the use of handwritten data entry would be practical.
Many of the non-pen application programs are written for a windowing environment. One such windowing environment is Windows by Microsoft Corporation of Redmond, Wash. Several operating systems also have integrated windowing environments. In a windowing environment, each application program is assigned a window. The windows for several programs can be shown on the computer display simultaneously. Typically, the windowing environment supports multitasking, that is, multiple programming may be operating concurrently. The windowing system controls the positioning and size of the windows on the screen. Typically, the user has considerable flexibility in arranging the windows. In most windowing systems, the windows can overlap. The window that logically overlaps obscures the overlapped window.
It would require extensive redesigning and reprogramming to adapt non-pen programs to accept handwritten data. In some situations, it may not be economically feasible to adapt a non-pen program. The costs of the adaptations may not be offset by increased revenue resulting from the program accepting handwritten data. It would be desirable if these non-pen application programs could receive handwritten data without the need to adapt the non-pen application program. It would be desirable if the non-pen program could also receive handwritten gestures.
The methods of the present invention provide for the data entry of handwritten data into a computer program that is not designed to accept handwritten data. According to the methods, a non-pen application program operates in a windowing environment. A handwriting data entry program detects when a user wants to input handwritten data. The data entry program creates an xe2x80x9cinvisiblexe2x80x9d window, which preferably overlaps the application window. An xe2x80x9cinvisiblexe2x80x9d window is a window that when created and displayed has no visual effect on the display. The windowing environment internally treats the creating and displaying of an invisible window like a visible window. However, when the user writes with the pen, the data entry program inputs the handwritten data, converts the data to recognized symbols, and erases the handwritten data from the display. The data entry program then sends the recognized symbols to the application program as virtual keyboard or mouse events. The application program then processes the virtual keyboard or mouse events as if the events were enter from the keyboard or mouse.
In preferred embodiments, the methods automatically detect when the user wants to input handwritten data to a non-pen application. The data entry program monitors all pen down events. The user starts entering handwritten data by writing over a data entry area of the application window. When the data entry program detects a pen down within a data entry area of the application window, the data entry program starts the collection and recognition process. When the user stops writing for a period of time, the data entry program assumes that the user has finished the handwritten data entry.
In a preferred embodiment, the data entry program inputs gestures from the user. The data entry program converts a recognized gesture to keyboard or mouse events or other standard messages that will effect the function of the gesture. The data entry program then sends these events to the application program as virtual events. When the application program receives the virtual events, it processes them as if they came from the keyboard or mouse.
It is an object of the present invention to provide a method and system for allowing non-pen application programs to receive handwritten data entry.
It is another object of the present invention to provide a method and system for using an invisible window to input handwritten data and send the recognized symbols to an application program.
It is another object of the present invention to provide a method and system for detecting when a non-pen application program is in a data entry mode.
It is another object of the present invention to provide a method and system for allowing a non-pen application program to process gesture data entry.
These and other objects will become apparent as the invention is more fully described below.